Skip to content

docs: add a2a-cli agent skill - #27

Merged
msampathkumar merged 3 commits into
mainfrom
skill/a2a-cli
Sep 8, 2026
Merged

docs: add a2a-cli agent skill#27
msampathkumar merged 3 commits into
mainfrom
skill/a2a-cli

Conversation

@msampathkumar

@msampathkumar msampathkumar commented Sep 1, 2026

Copy link
Copy Markdown
Member

Adds a single-file Agent Skill for the a2a CLI (SPEC §14), plus a short install README.

  • skills/a2a-cli/SKILL.md — how to use and learn the CLI, and record tasks for follow-up
  • skills/a2a-cli/README.md — install and verify

closes: #4

@msampathkumar
msampathkumar marked this pull request as ready for review September 2, 2026 23:14
@msampathkumar msampathkumar mentioned this pull request Sep 2, 2026
1 task
@yarolegovich

Copy link
Copy Markdown
Member

Thanks for kicking this off, but I think we need to iterate on this before merging.

  1. "Use when" description I think should be selling the skill more, i.e. lis more concrete triggers: use when you need to delegate to a specialized agent, fetch an agent card, send a message to an agent at a URL, check or cancel an A2A task.

  2. The core concepts like tasks and context are not introduced. I'd add a short bulleted statements list like:

* An A2A interaction starts with a client Message.
* The server responds with either a Message or a Task.
* Task represents a long running work, that can be cancelled or interrupted (eg. auth or user input required).
Server keeps track of Tasks and messages which relate to Tasks, while messages not related to a task are not stored.
* Tasks have server generated task and context-id. 
* Task transition to an interrupted state when user input or auth credentials are required to proceed.
* A Message carrying a task-id can be used to resume a task in the interrupted state.
* A Message carrying a context-id allows the server to link it to previous interactions this client had. A Task created in response to such a Message will be created in the same context.
* Many Tasks can exist within a single Context, but a Task can't be referenced with a reference to the different context, i.e. ---task-id and --context-id must agree.
  1. Too much focus on less important things: "Try it with a throwaway echo agent", "Exit code and task state answer different questions", "Recording requests and responses". Models are smart enough to come up with workflows and connect to real agents they need to connect from the start, I don't think these sections add value.

  2. There are no command examples or example flows. Check the internal CLI readme, it's important for a skill to have something like this: https://github.com/a2aproject/a2a-cli/tree/main/internal#send---send-a-message Just not focused on a single command, but more like walking through a task lifecycle.

  3. You're basically instructing to always read the SPEC.

  • Global flags and the output schema are defined in the a2a-cli specification (SPEC.md) — consult it rather than guessing.

It has too much information and it's now frozen, so the real cli mechanics will inevitably drift. Let's focus on cli help for flag and command discovery.

Let's check the prior CLI skill art:

Note the focus on the core workflow, commands to run and flags to pass.

@msampathkumar

Copy link
Copy Markdown
Member Author

Great points! Updated the PR.

@Math1987

Math1987 commented Sep 7, 2026

Copy link
Copy Markdown

I reproduced an installation mismatch in the current skill setup (cad22fa):

GOBIN="$(mktemp -d)" go install github.com/a2aproject/a2a-cli@latest

This installs a2a-cli, while the skill and its verification step invoke a2a. Tested on macOS arm64 with Go 1.26.0; latest resolved to v0.0.0-20260904130516-a27e1ee6d332.

The patch below builds the binary explicitly as a2a and explains the PATH setup. It also replaces the skill's automatic installation instruction with an a2a version preflight and a setup link, following the separation described in SPEC section 14.4. I verified the build and version check against this PR's head, and git diff --check passes. The lifecycle guidance is unchanged.

Proposed two-file patch against cad22fa
diff --git a/skills/a2a-cli/README.md b/skills/a2a-cli/README.md
index 047534b..d504809 100644
--- a/skills/a2a-cli/README.md
+++ b/skills/a2a-cli/README.md
@@ -13,12 +13,20 @@ It is one file, `SKILL.md`. Once it is installed, your agent can:
 
 ## Prerequisite
 
-The skill drives the `a2a` binary; it does not install it. Install `a2a` first:
+The skill drives the `a2a` binary; it does not install it. With a Go toolchain
+matching the repository's `go.mod`, build it from source with the expected name:
 
 ```bash
-go install github.com/a2aproject/a2a-cli@latest
+git clone https://github.com/a2aproject/a2a-cli.git
+cd a2a-cli
+go build -o a2a .
+export PATH="$PWD:$PATH"

+The PATH change applies to this shell. For future sessions, place the binary in
+a directory on your PATH. A plain go install names the executable a2a-cli,
+whereas this skill invokes a2a.
+
Confirm it is on your PATH:

diff --git a/skills/a2a-cli/SKILL.md b/skills/a2a-cli/SKILL.md
index 431a41a..1fec6be 100644
--- a/skills/a2a-cli/SKILL.md
+++ b/skills/a2a-cli/SKILL.md
@@ -41,13 +41,17 @@ returned.

## Setup

-Check for the binary; install from source if missing (needs a Go toolchain from
-https://go.dev/doc/install); re-run to update:
+Check that the binary is available:

```bash
-go install github.com/a2aproject/a2a-cli@latest
+a2a version

+If it is missing, ask the user to install it using the
+setup instructions,
+then retry the check. The binary must be available as a2a on PATH; the skill
+does not install or update it.
+
The tool is under active development. Treat a2a help and a2a <command> --help as the source of truth for the current commands and flags.


</details>

@msampathkumar

Copy link
Copy Markdown
Member Author

Hi @Math1987 Thank you for the review & PR. We appreciate it 👍

Let us do this. (1) Merge this PR (2) Update your PR to point to main branch

A clarification to share here. The installation is expected to be a2a. We are actually working on the difference to fixed. We will keep your PR open for now.

@msampathkumar
msampathkumar merged commit eb55d61 into main Sep 8, 2026
4 of 5 checks passed
@msampathkumar
msampathkumar deleted the skill/a2a-cli branch September 8, 2026 11:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feat]: create agent skill

3 participants